
'use strict';

const tool = require('../tool');


// console.log(project_config)


module.exports = async function tableGenerate(tableConfig, module_config) {

  //是否初次生成的字段
  var isGenerate = tableConfig.isGenerate;
  if (isGenerate == 'false') {
    return;
  }

  //生成table
  const tableMakeInit = require('../module/table/table'); //引入表格总方法
  const tableObj = tableMakeInit(tableConfig, module_config);  //初始化表格部件
  // 模板获取 搜索栏 + 表格 + 分页
  const tableModuleTpl = tableObj.tableModuleTpl; //表格模板
  // 挂载钩子获取
  const tableDefaultMounted = tableObj.tableDefaultMounted(tableConfig); //加载函数执行
  // 默认方法获取
  const tableDefaultMethods = tableObj.tableDefaultMethods; //默认方法执行
  // 获取方法索引
  var tableMethodsFirst = tableObj.tableMethodsFirst;
  // 获取具体方法
  var tableMethodsSecond = tableObj.tableMethodsSecond;
  // 列表输入框的绑定数据
  var totalDataContent = tableObj.totalDataContent;

  //后续处理
  // 需要多次添加的，结尾补上插值字符串
  var templateCode = "";
  templateCode = tableModuleTpl + `
    {{{templateCode}}}
   `;
  tableMethodsFirst += `
    {{{methodsCodeFirst}}}
   `;
  tableMethodsSecond += `
    {{{methodsCodeSecond}}}
   `;
  totalDataContent += `
   {{{dataCode}}}
  `;

  // 引入去除未使用的插值字符串
  const finalHandle = require('../module/final_handle'); //最后处理未使用的数据


  //创建文件夹
  await tool.testAndMakeDirectory({
    dirPath: `../src/pages/${module_config.module_name}`
  });

  var tableName = 'table';
  if (tableConfig.table_name) {
    tableName = tableConfig.table_name;
  }
  //生成文件
  tool.generateFunc({
    tipsText: tableConfig.tipsText,
    filePath: `./template/table/table_base_tpl.vue`,
    outputPath: `../src/pages/${module_config.module_name}/${tableName}.vue`,
    templateCode: templateCode,
    tableDefaultMounted,
    tableDefaultMethods,
    methodsCodeFirst: tableMethodsFirst,
    methodsCodeSecond: tableMethodsSecond,
    dataCode: totalDataContent,
    // styleCode: '',
  }, finalHandle);

}




// //member_manager
// tool.generateFunc({
//   filePath: './template/base_tpl.vue',
//   outputPath: './src/member_manager.vue',
//   templateCode: '第一部分内容',
//   dataCode: '//第二部分内容',
//   styleCode: '//第三部分内容',
// }, finalHandle);


//替换函数
function handleReplace(tpl, opt) {
  return tpl.replace(/{{{(.*?)}}}/g, (node, key) => {
    return opt[key];
  })
}

// <el-table-column label="本页序号" prop="index"></el-table-column>
// <el-table-column label="序号" prop="totalIndex"></el-table-column>
// <el-table-column label="会员ID" prop="id"></el-table-column>
// <el-table-column label="注册手机号" prop="tel"></el-table-column>
// <el-table-column label="姓名" prop="realName"></el-table-column>
// <el-table-column label="昵称" prop="nickName"></el-table-column>
// <el-table-column label="性别">
//   <template slot-scope="scope">{{sexShow[scope.row.sex]}}</template>
// </el-table-column>
// <el-table-column label="来源终端" prop="sourceTerminal"></el-table-column>
// <el-table-column label="注册时间" prop="gmtCreated"></el-table-column>
// <el-table-column label="最后一次登陆时间" prop="gmtCreated"></el-table-column>
// <el-table-column label="实名认证" prop="realNameCheck"></el-table-column>
